package ms.unicorn.dsl.serializer;

import com.google.inject.Inject;
import com.google.inject.Provider;
import ms.unicorn.dsl.services.UnicornDSLGrammarAccess;
import ms.unicorn.dsl.unicornDSL.CallParameter;
import ms.unicorn.dsl.unicornDSL.DslConvertionScheme;
import ms.unicorn.dsl.unicornDSL.ElementField;
import ms.unicorn.dsl.unicornDSL.FunctionArgument;
import ms.unicorn.dsl.unicornDSL.ImportStatement;
import ms.unicorn.dsl.unicornDSL.IncludeStatement;
import ms.unicorn.dsl.unicornDSL.LanguageElement;
import ms.unicorn.dsl.unicornDSL.NamedProperty;
import ms.unicorn.dsl.unicornDSL.Namespace;
import ms.unicorn.dsl.unicornDSL.Theme;
import ms.unicorn.dsl.unicornDSL.UnicornConversion;
import ms.unicorn.dsl.unicornDSL.UnicornDSLPackage;
import ms.unicorn.dsl.unicornDSL.UnicornLanguage;
import ms.unicorn.dsl.unicornDSL.UnicornLibrary;
import ms.unicorn.dsl.unicornDSL.XAddExpression;
import ms.unicorn.dsl.unicornDSL.XArray;
import ms.unicorn.dsl.unicornDSL.XArrayKey;
import ms.unicorn.dsl.unicornDSL.XAssignExpression;
import ms.unicorn.dsl.unicornDSL.XBlockExpression;
import ms.unicorn.dsl.unicornDSL.XBoolExpression;
import ms.unicorn.dsl.unicornDSL.XBoolLiteral;
import ms.unicorn.dsl.unicornDSL.XCastExpression;
import ms.unicorn.dsl.unicornDSL.XComparativeExpression;
import ms.unicorn.dsl.unicornDSL.XConstructionExpression;
import ms.unicorn.dsl.unicornDSL.XDataFrame;
import ms.unicorn.dsl.unicornDSL.XFeatureCall;
import ms.unicorn.dsl.unicornDSL.XFloatLiteral;
import ms.unicorn.dsl.unicornDSL.XForControlVariable;
import ms.unicorn.dsl.unicornDSL.XForExpression;
import ms.unicorn.dsl.unicornDSL.XFunctionDeclaration;
import ms.unicorn.dsl.unicornDSL.XIfExpression;
import ms.unicorn.dsl.unicornDSL.XInitObjectExpression;
import ms.unicorn.dsl.unicornDSL.XIntLiteral;
import ms.unicorn.dsl.unicornDSL.XJavaTypeImport;
import ms.unicorn.dsl.unicornDSL.XMemberTerm;
import ms.unicorn.dsl.unicornDSL.XMultExpression;
import ms.unicorn.dsl.unicornDSL.XNameExpression;
import ms.unicorn.dsl.unicornDSL.XNullLiteral;
import ms.unicorn.dsl.unicornDSL.XParenthesizedExpression;
import ms.unicorn.dsl.unicornDSL.XReturnStatement;
import ms.unicorn.dsl.unicornDSL.XStringLiteral;
import ms.unicorn.dsl.unicornDSL.XUnaryTerm;
import ms.unicorn.dsl.unicornDSL.XVariableDeclaration;
import ms.unicorn.dsl.unicornDSL.XWhileExpression;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;

@SuppressWarnings("all")
public abstract class AbstractUnicornDSLSemanticSequencer extends AbstractDelegatingSemanticSequencer {

	@Inject
	private UnicornDSLGrammarAccess grammarAccess;
	
	public void createSequence(EObject context, EObject semanticObject) {
		if(semanticObject.eClass().getEPackage() == UnicornDSLPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
			case UnicornDSLPackage.CALL_PARAMETER:
				if(context == grammarAccess.getCallParameterRule()) {
					sequence_CallParameter(context, (CallParameter) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.DSL_CONVERTION_SCHEME:
				if(context == grammarAccess.getConversionSchemeRule()) {
					sequence_ConversionScheme(context, (DslConvertionScheme) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.ELEMENT_FIELD:
				if(context == grammarAccess.getElementFieldRule()) {
					sequence_ElementField(context, (ElementField) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.FUNCTION_ARGUMENT:
				if(context == grammarAccess.getFunctionArgumentRule()) {
					sequence_FunctionArgument(context, (FunctionArgument) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.IMPORT_STATEMENT:
				if(context == grammarAccess.getImportStatementRule()) {
					sequence_ImportStatement(context, (ImportStatement) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.INCLUDE_STATEMENT:
				if(context == grammarAccess.getIncludeStatementRule()) {
					sequence_IncludeStatement(context, (IncludeStatement) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.LANGUAGE_ELEMENT:
				if(context == grammarAccess.getIdentifiedElementRule() ||
				   context == grammarAccess.getLanguageElementRule()) {
					sequence_LanguageElement(context, (LanguageElement) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.NAMED_PROPERTY:
				if(context == grammarAccess.getElementPropertyTagRule()) {
					sequence_ElementPropertyTag(context, (NamedProperty) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getNamedPropertyRule()) {
					sequence_NamedProperty(context, (NamedProperty) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.NAMESPACE:
				if(context == grammarAccess.getNamespaceRule()) {
					sequence_Namespace(context, (Namespace) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.THEME:
				if(context == grammarAccess.getIdentifiedElementRule() ||
				   context == grammarAccess.getThemeRule()) {
					sequence_Theme(context, (Theme) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.UNICORN_CONVERSION:
				if(context == grammarAccess.getModuleRule() ||
				   context == grammarAccess.getUnicornConversionRule()) {
					sequence_UnicornConversion(context, (UnicornConversion) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.UNICORN_LANGUAGE:
				if(context == grammarAccess.getModuleRule() ||
				   context == grammarAccess.getUnicornLanguageRule()) {
					sequence_UnicornLanguage(context, (UnicornLanguage) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.UNICORN_LIBRARY:
				if(context == grammarAccess.getModuleRule() ||
				   context == grammarAccess.getUnicornLibraryRule()) {
					sequence_UnicornLibrary(context, (UnicornLibrary) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XADD_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XAddExpression(context, (XAddExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XARRAY:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XArray(context, (XArray) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XARRAY_KEY:
				if(context == grammarAccess.getXArrayKeyRule()) {
					sequence_XArrayKey(context, (XArrayKey) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XASSIGN_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XAssignExpression(context, (XAssignExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XBLOCK_EXPRESSION:
				if(context == grammarAccess.getXBlockExpressionRule()) {
					sequence_XBlockExpression(context, (XBlockExpression) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getXBreakableBlockExpressionRule()) {
					sequence_XBreakableBlockExpression(context, (XBlockExpression) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXStrictBlockExpressionRule()) {
					sequence_XStrictBlockExpression(context, (XBlockExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XBOOL_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XBoolExpression(context, (XBoolExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XBOOL_LITERAL:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayKeyRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXBoolLiteralRule() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXLiteralRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XBoolLiteral(context, (XBoolLiteral) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XCAST_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XCastExpression(context, (XCastExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XCOMPARATIVE_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XComparativeExpression(context, (XComparativeExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XCONSTRUCTION_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXConstructionExpressionRule() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XConstructionExpression(context, (XConstructionExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XDATA_FRAME:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXDataFrameExpressionRule() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XDataFrameExpression(context, (XDataFrame) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XFEATURE_CALL:
				if(context == grammarAccess.getXFeatureCallRule()) {
					sequence_XFeatureCall(context, (XFeatureCall) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXIdentifiedElementFeatureCallRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XIdentifiedElementFeatureCall(context, (XFeatureCall) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XFLOAT_LITERAL:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayKeyRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXFloatLiteralRule() ||
				   context == grammarAccess.getXLiteralRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XFloatLiteral(context, (XFloatLiteral) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XFOR_CONTROL_VARIABLE:
				if(context == grammarAccess.getXForControlVariableRule()) {
					sequence_XForControlVariable(context, (XForControlVariable) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XFOR_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXForExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XForExpression(context, (XForExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XFUNCTION_DECLARATION:
				if(context == grammarAccess.getIdentifiedElementRule() ||
				   context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXFunctionDeclarationRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XFunctionDeclaration(context, (XFunctionDeclaration) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XIF_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXIfExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XIfExpression(context, (XIfExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XINIT_OBJECT_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXInitObjectExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XInitObjectExpression(context, (XInitObjectExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XINT_LITERAL:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayKeyRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXIntLiteralRule() ||
				   context == grammarAccess.getXLiteralRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XIntLiteral(context, (XIntLiteral) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XJAVA_TYPE_IMPORT:
				if(context == grammarAccess.getCommaEndedIdentifiedElementRule() ||
				   context == grammarAccess.getXJavaTypeImportRule()) {
					sequence_XJavaTypeImport(context, (XJavaTypeImport) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XMEMBER_TERM:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XMemberTerm(context, (XMemberTerm) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XMULT_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule()) {
					sequence_XMultExpression(context, (XMultExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XNAME_EXPRESSION:
				if(context == grammarAccess.getXNameExpressionRule()) {
					sequence_XNameExpression(context, (XNameExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XNULL_LITERAL:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayKeyRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXLiteralRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXNullLiteralRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XNullLiteral(context, (XNullLiteral) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XPARENTHESIZED_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXParenthesizedExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XParenthesizedExpression(context, (XParenthesizedExpression) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XRETURN_STATEMENT:
				if(context == grammarAccess.getStatementRule()) {
					sequence_Statement_XBreakContinueExpression_XReturnStatement(context, (XReturnStatement) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getXBreakContinueExpressionRule()) {
					sequence_XBreakContinueExpression(context, (XReturnStatement) semanticObject); 
					return; 
				}
				else if(context == grammarAccess.getXReturnStatementRule()) {
					sequence_XReturnStatement(context, (XReturnStatement) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XSTRING_LITERAL:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXArrayKeyRule() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXLiteralRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXStringLiteralRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0()) {
					sequence_XStringLiteral(context, (XStringLiteral) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XUNARY_TERM:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXUnaryTermRule()) {
					sequence_XUnaryTerm(context, (XUnaryTerm) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XVARIABLE_DECLARATION:
				if(context == grammarAccess.getCommaEndedIdentifiedElementRule() ||
				   context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXVariableDeclarationRule()) {
					sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject); 
					return; 
				}
				else break;
			case UnicornDSLPackage.XWHILE_EXPRESSION:
				if(context == grammarAccess.getStatementRule() ||
				   context == grammarAccess.getXAddExpressionRule() ||
				   context == grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXAssignExpressionRule() ||
				   context == grammarAccess.getXAssignExpressionAccess().getXAssignExpressionLeftAction_1_0_0() ||
				   context == grammarAccess.getXBoolExpressionRule() ||
				   context == grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXCastExpressionRule() ||
				   context == grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0() ||
				   context == grammarAccess.getXComparativeExpressionRule() ||
				   context == grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXExpressionRule() ||
				   context == grammarAccess.getXMemberTermRule() ||
				   context == grammarAccess.getXMemberTermAccess().getXMemberTermOwnerAction_1_0_0() ||
				   context == grammarAccess.getXMultExpressionRule() ||
				   context == grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0() ||
				   context == grammarAccess.getXNameExpressionRule() ||
				   context == grammarAccess.getXTermRule() ||
				   context == grammarAccess.getXUnaryTermRule() ||
				   context == grammarAccess.getXUnaryTermAccess().getXUnaryTermTermAction_1_1_0_0() ||
				   context == grammarAccess.getXWhileExpressionRule()) {
					sequence_XWhileExpression(context, (XWhileExpression) semanticObject); 
					return; 
				}
				else break;
			}
		if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
	}
	
	/**
	 * Constraint:
	 *     ((name=ID? value=XBoolExpression) | inheritedParameters?='...')
	 */
	protected void sequence_CallParameter(EObject context, CallParameter semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (type='rule' name=ID (Properties+=NamedProperty | Properties+=ElementField)*)
	 */
	protected void sequence_ConversionScheme(EObject context, DslConvertionScheme semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (isField='field' name=ID (Tags+=ElementPropertyTag Tags+=ElementPropertyTag*)? type=ID value=XExpression?)
	 */
	protected void sequence_ElementField(EObject context, ElementField semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (name=DotQualifiedName value=XExpression)
	 */
	protected void sequence_ElementPropertyTag(EObject context, NamedProperty semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     ((name=ID value=XExpression?) | any?='...')
	 */
	protected void sequence_FunctionArgument(EObject context, FunctionArgument semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (importedNamespace=STRING | importedNamespace=QualifiedNameStar)
	 */
	protected void sequence_ImportStatement(EObject context, ImportStatement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (importURI=STRING | importURI=DotQualifiedName | (searchPathUsed?='<' (importURI=STRING | importURI=DotQualifiedName)))
	 */
	protected void sequence_IncludeStatement(EObject context, IncludeStatement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         (type='entity' | type='relation' | type='diagram') 
	 *         name=ID 
	 *         inheritance=[LanguageElement|QualifiedName]? 
	 *         (Properties+=NamedProperty | Properties+=ElementField)*
	 *     )
	 */
	protected void sequence_LanguageElement(EObject context, LanguageElement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (name=DotQualifiedName (Tags+=ElementPropertyTag Tags+=ElementPropertyTag*)? value=XExpression)
	 */
	protected void sequence_NamedProperty(EObject context, NamedProperty semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (name=ID (imports+=ImportStatement | elements+=IdentifiedElement | elements+=CommaEndedIdentifiedElement | namespaces+=Namespace)*)
	 */
	protected void sequence_Namespace(EObject context, Namespace semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     ((return?='return' value=XExpression?) | break?='break')
	 */
	protected void sequence_Statement_XBreakContinueExpression_XReturnStatement(EObject context, XReturnStatement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (type='theme' name=ID inheritance=[Theme|QualifiedName]? (Properties+=NamedProperty | Properties+=ElementField | children+=Theme)*)
	 */
	protected void sequence_Theme(EObject context, Theme semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         name=ID 
	 *         include+=IncludeStatement* 
	 *         (imports+=ImportStatement | elements+=XFunctionDeclaration | elements+=ConversionScheme | elements+=CommaEndedIdentifiedElement | namespace+=Namespace)*
	 *     )
	 */
	protected void sequence_UnicornConversion(EObject context, UnicornConversion semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         name=ID 
	 *         (Properties+=NamedProperty Properties+=NamedProperty*)? 
	 *         include+=IncludeStatement* 
	 *         (imports+=ImportStatement | elements+=IdentifiedElement | elements+=CommaEndedIdentifiedElement | namespace+=Namespace)*
	 *     )
	 */
	protected void sequence_UnicornLanguage(EObject context, UnicornLanguage semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         name=ID 
	 *         include+=IncludeStatement* 
	 *         (imports+=ImportStatement | elements+=IdentifiedElement | elements+=CommaEndedIdentifiedElement | namespace+=Namespace)*
	 *     )
	 */
	protected void sequence_UnicornLibrary(EObject context, UnicornLibrary semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (leftOperand=XAddExpression_XAddExpression_1_0_0 operator=AddOps rightOperand=XMultExpression)
	 */
	protected void sequence_XAddExpression(EObject context, XAddExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__LEFT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__LEFT_OPERAND));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__OPERATOR) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__OPERATOR));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__RIGHT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XADD_EXPRESSION__RIGHT_OPERAND));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXAddExpressionAccess().getXAddExpressionLeftOperandAction_1_0_0(), semanticObject.getLeftOperand());
		feeder.accept(grammarAccess.getXAddExpressionAccess().getOperatorAddOpsParserRuleCall_1_0_1_0(), semanticObject.getOperator());
		feeder.accept(grammarAccess.getXAddExpressionAccess().getRightOperandXMultExpressionParserRuleCall_1_0_2_0(), semanticObject.getRightOperand());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     name=DotQualifiedName
	 */
	protected void sequence_XArrayKey(EObject context, XArrayKey semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XARRAY_KEY__NAME) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XARRAY_KEY__NAME));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXArrayKeyAccess().getNameDotQualifiedNameParserRuleCall_0_1_0(), semanticObject.getName());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         (list?='list'? (expressions+=XExpression expressions+=XExpression*)?) | 
	 *         (map?='map'? (keys+=XArrayKey expressions+=XExpression (keys+=XArrayKey expressions+=XExpression)*)?)
	 *     )
	 */
	protected void sequence_XArray(EObject context, XArray semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         left=XAssignExpression_XAssignExpression_1_0_0 
	 *         (operator='=' | operator='+=' | operator='-=' | operator='*=' | operator='/=') 
	 *         right=XBoolExpression
	 *     )
	 */
	protected void sequence_XAssignExpression(EObject context, XAssignExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (expressions+=Statement | (expressions+=Statement*))
	 */
	protected void sequence_XBlockExpression(EObject context, XBlockExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (leftOperand=XBoolExpression_XBoolExpression_1_0_0 operator=BoolOps rightOperand=XComparativeExpression)
	 */
	protected void sequence_XBoolExpression(EObject context, XBoolExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__LEFT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__LEFT_OPERAND));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__OPERATOR) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__OPERATOR));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__RIGHT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XBOOL_EXPRESSION__RIGHT_OPERAND));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXBoolExpressionAccess().getXBoolExpressionLeftOperandAction_1_0_0(), semanticObject.getLeftOperand());
		feeder.accept(grammarAccess.getXBoolExpressionAccess().getOperatorBoolOpsParserRuleCall_1_0_1_0(), semanticObject.getOperator());
		feeder.accept(grammarAccess.getXBoolExpressionAccess().getRightOperandXComparativeExpressionParserRuleCall_1_0_2_0(), semanticObject.getRightOperand());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (isTrue?='true'?)
	 */
	protected void sequence_XBoolLiteral(EObject context, XBoolLiteral semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     break?='break'
	 */
	protected void sequence_XBreakContinueExpression(EObject context, XReturnStatement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (expressions+=Statement | (expressions+=Statement*))
	 */
	protected void sequence_XBreakableBlockExpression(EObject context, XBlockExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (expression=XCastExpression_XCastExpression_1_0_0 type=[XJavaTypeImport|QualifiedName])
	 */
	protected void sequence_XCastExpression(EObject context, XCastExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XCAST_EXPRESSION__EXPRESSION) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XCAST_EXPRESSION__EXPRESSION));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XCAST_EXPRESSION__TYPE) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XCAST_EXPRESSION__TYPE));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXCastExpressionAccess().getXCastExpressionExpressionAction_1_0_0(), semanticObject.getExpression());
		feeder.accept(grammarAccess.getXCastExpressionAccess().getTypeXJavaTypeImportQualifiedNameParserRuleCall_1_0_2_0_1(), semanticObject.getType());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (leftOperand=XComparativeExpression_XComparativeExpression_1_0_0 operator=CompareOps rightOperand=XAddExpression)
	 */
	protected void sequence_XComparativeExpression(EObject context, XComparativeExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__LEFT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__LEFT_OPERAND));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__OPERATOR) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__OPERATOR));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__RIGHT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XCOMPARATIVE_EXPRESSION__RIGHT_OPERAND));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXComparativeExpressionAccess().getXComparativeExpressionLeftOperandAction_1_0_0(), semanticObject.getLeftOperand());
		feeder.accept(grammarAccess.getXComparativeExpressionAccess().getOperatorCompareOpsParserRuleCall_1_0_1_0(), semanticObject.getOperator());
		feeder.accept(grammarAccess.getXComparativeExpressionAccess().getRightOperandXAddExpressionParserRuleCall_1_0_2_0(), semanticObject.getRightOperand());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (type=[XJavaTypeImport|QualifiedName] (arguments+=XExpression arguments+=XExpression*)? (initExps+=XExpression initExps+=XExpression*)?)
	 */
	protected void sequence_XConstructionExpression(EObject context, XConstructionExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         ((extensible?='extensible' readonly?='readonly'?) | (readonly?='readonly' extensible?='extensible'?))? 
	 *         (keys+=ID expressions+=XExpression (keys+=ID expressions+=XExpression)*)?
	 *     )
	 */
	protected void sequence_XDataFrameExpression(EObject context, XDataFrame semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         feature=QualifiedName 
	 *         nullSafe?='?'? 
	 *         ((operatorCall?='(' (params+=CallParameter params+=CallParameter*)?) | (indexCall?='[' (params+=CallParameter params+=CallParameter*)?))?
	 *     )
	 */
	protected void sequence_XFeatureCall(EObject context, XFeatureCall semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     value=FLOAT
	 */
	protected void sequence_XFloatLiteral(EObject context, XFloatLiteral semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XFLOAT_LITERAL__VALUE) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XFLOAT_LITERAL__VALUE));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXFloatLiteralAccess().getValueFLOATTerminalRuleCall_1_0(), semanticObject.getValue());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (((new?='var' name=ID) | feature=XIdentifiedElementFeatureCall) value=XExpression?)
	 */
	protected void sequence_XForControlVariable(EObject context, XForControlVariable semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         forVar=XForControlVariable? 
	 *         ((condition=XExpression (postFors+=XExpression postFors+=XExpression*)?) | (forEach?=':' list=XExpression)) 
	 *         body=XBreakableBlockExpression
	 *     )
	 */
	protected void sequence_XForExpression(EObject context, XForExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (name=ID? (arguments+=FunctionArgument arguments+=FunctionArgument*)? body=XBlockExpression)
	 */
	protected void sequence_XFunctionDeclaration(EObject context, XFunctionDeclaration semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (
	 *         (featureElement=[IdentifiedElement|QualifiedName] | feature='this' | feature='__args') 
	 *         nullSafe?='?'? 
	 *         ((operatorCall?='(' (params+=CallParameter params+=CallParameter*)?) | (indexCall?='[' (params+=CallParameter params+=CallParameter*)?))?
	 *     )
	 */
	protected void sequence_XIdentifiedElementFeatureCall(EObject context, XFeatureCall semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (condition=XExpression ifTrue=XBreakableBlockExpression ifFalse=XBreakableBlockExpression?)
	 */
	protected void sequence_XIfExpression(EObject context, XIfExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (nullSafe?='?'? object=XExpression initExp=XBlockExpression)
	 */
	protected void sequence_XInitObjectExpression(EObject context, XInitObjectExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (value=INT | value=HEX)
	 */
	protected void sequence_XIntLiteral(EObject context, XIntLiteral semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     ((class=STRING | class=DotQualifiedName) name=ID)
	 */
	protected void sequence_XJavaTypeImport(EObject context, XJavaTypeImport semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (owner=XMemberTerm_XMemberTerm_1_0_0 nullSafe?='?.'? member=XFeatureCall)
	 */
	protected void sequence_XMemberTerm(EObject context, XMemberTerm semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (leftOperand=XMultExpression_XMultExpression_1_0_0 operator=MultOps rightOperand=XCastExpression)
	 */
	protected void sequence_XMultExpression(EObject context, XMultExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__LEFT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__LEFT_OPERAND));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__OPERATOR) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__OPERATOR));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__RIGHT_OPERAND) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XMULT_EXPRESSION__RIGHT_OPERAND));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXMultExpressionAccess().getXMultExpressionLeftOperandAction_1_0_0(), semanticObject.getLeftOperand());
		feeder.accept(grammarAccess.getXMultExpressionAccess().getOperatorMultOpsParserRuleCall_1_0_1_0(), semanticObject.getOperator());
		feeder.accept(grammarAccess.getXMultExpressionAccess().getRightOperandXCastExpressionParserRuleCall_1_0_2_0(), semanticObject.getRightOperand());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     (name=ID value=XExpression)
	 */
	protected void sequence_XNameExpression(EObject context, XNameExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XNAME_EXPRESSION__NAME) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XNAME_EXPRESSION__NAME));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XNAME_EXPRESSION__VALUE) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XNAME_EXPRESSION__VALUE));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXNameExpressionAccess().getNameIDTerminalRuleCall_0_1_0(), semanticObject.getName());
		feeder.accept(grammarAccess.getXNameExpressionAccess().getValueXExpressionParserRuleCall_0_3_0(), semanticObject.getValue());
		feeder.finish();
	}
	
	
	/**
	 * Constraint:
	 *     {XNullLiteral}
	 */
	protected void sequence_XNullLiteral(EObject context, XNullLiteral semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (exp+=XNameExpression exp+=XNameExpression*)
	 */
	protected void sequence_XParenthesizedExpression(EObject context, XParenthesizedExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (return?='return' value=XExpression?)
	 */
	protected void sequence_XReturnStatement(EObject context, XReturnStatement semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (expressions+=Statement*)
	 */
	protected void sequence_XStrictBlockExpression(EObject context, XBlockExpression semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (value=STRING | value=VERBATIM_STRING)
	 */
	protected void sequence_XStringLiteral(EObject context, XStringLiteral semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (((operator='!' | operator='-') term=XMemberTerm) | (term=XUnaryTerm_XUnaryTerm_1_1_0_0 (operator='++' | operator='--')))
	 */
	protected void sequence_XUnaryTerm(EObject context, XUnaryTerm semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     ((name=ID value=XExpression?) | (writable?='var' name=ID value=XExpression?))
	 */
	protected void sequence_XVariableDeclaration(EObject context, XVariableDeclaration semanticObject) {
		genericSequencer.createSequence(context, semanticObject);
	}
	
	
	/**
	 * Constraint:
	 *     (condition=XExpression body=XBreakableBlockExpression)
	 */
	protected void sequence_XWhileExpression(EObject context, XWhileExpression semanticObject) {
		if(errorAcceptor != null) {
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XWHILE_EXPRESSION__CONDITION) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XWHILE_EXPRESSION__CONDITION));
			if(transientValues.isValueTransient(semanticObject, UnicornDSLPackage.Literals.XWHILE_EXPRESSION__BODY) == ValueTransient.YES)
				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, UnicornDSLPackage.Literals.XWHILE_EXPRESSION__BODY));
		}
		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
		feeder.accept(grammarAccess.getXWhileExpressionAccess().getConditionXExpressionParserRuleCall_3_0(), semanticObject.getCondition());
		feeder.accept(grammarAccess.getXWhileExpressionAccess().getBodyXBreakableBlockExpressionParserRuleCall_5_0(), semanticObject.getBody());
		feeder.finish();
	}
}
